#ifndef ENCRYPT_H
#define ENCRYPT_H

class Encryption
{
	public:
		Encryption() { }
		virtual ~Encryption() { }

		// returns amount encoded (len + any necessary encryption bytes)
		//
		virtual int32 encode(uint8* src, int32 len) = 0;
		virtual int32 encode(uint8* src, uint8* dst, int32 len) = 0;

		// returns amount decoded (len - any necessary decryption bytes)
		//
		virtual int32 decode(uint8* src, int32 len) = 0;
		virtual int32 decode(uint8* src, uint8* dst, int32 len) = 0;
};

#endif
